CAN FD 驱动开发实战
📘 30章 · 车载ECU
🧩 风格 · 紧凑目录卡片
⚡ 点击章节跳转对应 .html
01
CAN FD概述
从CAN 2.0到CAN FD的演进
CAN FD核心优势 (速率提升·数据场扩展)
车载网络应用场景
02
CAN FD物理层
差分信号与总线拓扑
位时序与采样点配置
收发器选型要点
03
CAN FD数据链路层
帧结构 (标准帧/扩展帧)
数据场长度编码 DLC
BRS 与 ESI 标志
04
CAN FD协议控制器
集成CAN FD的MCU选型
SJA1000 / M_CAN 对比
控制器初始化流程
05
CAN FD驱动架构设计
分层驱动模型 (HAL/LL/App)
中断与轮询模式选择
驱动接口API设计原则
06
寄存器级驱动开发
关键寄存器解析 (控制/状态/中断/消息RAM)
寄存器读写封装
位操作技巧
07
CAN FD消息RAM管理
Rx/Tx Buffer配置
FIFO与专用Buffer模式
消息过滤与掩码设置
08
CAN FD发送驱动实现
发送描述符构建
发送请求与仲裁
发送完成中断 / 超时重试
09
CAN FD接收驱动实现
接收中断处理流程
接收FIFO管理
超时/溢出处理与报文解析
10
CAN FD中断处理
中断优先级与嵌套
中断服务函数设计
中断延迟优化 / 共享中断
11
CAN FD错误处理
错误状态机 (Error Passive/Bus Off)
错误计数寄存器解析
错误中断与恢复策略
12
CAN FD位时序配置
TQ计算与采样点设置
波特率与数据相位速率
同步跳转宽度 SJW
13
CAN FD时钟管理
时钟源选择 (PLL/外部晶振)
时钟分频与门控
低功耗时钟策略
14
CAN FD过滤器配置
标准帧/扩展帧过滤
单/双掩码模式
ID范围过滤 & 动态重配置
15
CAN FD发送调度
基于优先级的发送队列
时间触发发送 (TTCAN)
发送周期与抖动控制
16
CAN FD接收调度
接收报文优先级排序
接收超时与丢弃策略
接收DMA传输优化
17
CAN FD与DMA集成
DMA描述符配置
DMA传输完成中断
DMA与CPU协同 & 错误处理
18
CAN FD低功耗管理
休眠/唤醒机制
本地唤醒与远程唤醒
收发器使能 & 低功耗切换
19
CAN FD诊断功能
UDS on CAN FD 诊断报文
诊断请求/响应处理
诊断会话管理
20
CAN FD网络管理
OSEK/VDX NM 与 AUTOSAR NM
网络管理报文格式
睡眠与唤醒状态机
21
CAN FD安全机制
CAN FD认证与加密
SecOC (安全板载通信)
密钥管理与分发
22
CAN FD Bootloader
基于CAN FD的固件升级
刷写协议 (UDS 0x34/0x36)
刷写安全校验
23
CAN FD性能优化
驱动代码优化 (循环展开/内联)
中断延迟优化
缓存一致性维护
24
CAN FD多核处理
多核架构下的CAN FD驱动
核间通信与同步
资源锁与原子操作
25
CAN FD虚拟化
Hypervisor下的CAN FD虚拟化
虚拟CAN FD控制器
虚拟机间通信
26
CAN FD测试与验证
单元测试框架 (CUnit/Unity)
硬件在环 (HIL) 测试
CAN FD一致性测试
27
CAN FD调试技巧
逻辑分析仪抓取CAN FD波形
CAN FD总线分析仪使用
驱动日志与Trace
28
CAN FD常见问题排查
总线错误 (位错误/填充错误)
驱动死锁 & 中断风暴
数据一致性
29
CAN FD与AUTOSAR集成
AUTOSAR CAN FD栈架构
CAN IF/CanDrv/CanTrcv配置
RTE集成
30
实战项目
STM32H7 CAN FD驱动开发
S32K3 CAN FD驱动开发
TC3xx CAN FD驱动开发